package pk.sistema.vendas.web.cliente;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

public class ClienteDAOHibernate implements ClienteDAO {

	private Session sessao;

	//get e set
		public Session getSessao() {
			return sessao;
		}

		public void setSessao(Session sessao) {
			this.sessao = sessao;
		}
	
	@Override
	public void salvar(Cliente cliente) {
		this.sessao.save(cliente); 

	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Cliente> listarCliente() {
		Criteria lista = sessao.createCriteria(Cliente.class);
		
		return lista.list();
	}

	@Override
	public void excluirCliente(Cliente cliente) {
		this.sessao.delete(cliente);
		
	}

	@Override
	public Cliente pesquisarCliente(String pesquisa) {
		Query consultaNome = this.sessao.createSQLQuery("from cliente c where c.nome like: nome");
		
		consultaNome.setString("nome","%"+pesquisa+"%");
		return (Cliente) consultaNome.uniqueResult();
		}

	@Override
	public void alterarCliente(Cliente clientePesquisado) {
		this.sessao.update(clientePesquisado);
		
	}

	@Override
	public Cliente pesquisarPorCodigo(Integer codCliente) {
		
		return (Cliente) this.sessao.get(Cliente.class, codCliente);
	}

}
